package com.example.template.common.config;

import com.example.template.interceptor.LoginInterceptor;
import com.example.template.interceptor.PermissionInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @className: WebMvcConfig
 * @description: TODO 类描述
 * @author: Kuangkeli
 * @date: 2024/01/19 16:01
 **/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Autowired
    private LoginInterceptor loginInterceptor;

    @Autowired
    private PermissionInterceptor permissionInterceptor;

    /**
     * 向拦截器注册表中添加自定义拦截器 实现对除（Login 及 index）接口的拦截。
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //指定URL模式：使用 addPathPatterns 方法来指定拦截器应用于哪些URL模式。在这种情况下，模式 "/*" 表示拦截器将适用于所有URL。
        //排除URL模式：使用 excludePathPatterns 方法来排除某些URL模式不被拦截。在这种情况下，"/static/**"、"/login" 和 "/index" 将不会被拦截。
        registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns("/static/**","/login","/index");
        registry.addInterceptor(permissionInterceptor).addPathPatterns("/**").excludePathPatterns("/static/**","/login","/index");
    }
}
